package com.orangesoft.tescherfriend.business.user.service;

import java.util.List;

import com.orangesoft.common.vo.ResultDTO;
import com.orangesoft.tescherfriend.business.user.entity.User;
import com.orangesoft.tescherfriend.business.user.dto.UserDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
*用户
*
*@author xhy
**/
@Service
public interface UserService {

	/**
	 * 根据id获取唯一记录
	 *
	 * @param id
	 * @return
	 */
	User findById(Long id);

	/**
	* 获取全部记录
	*
	* @return
	*/
	List<User> findAll();

    /**
    * 获取不分页数据，有查询条件，有排序
    *
    * @param userDTO
    * @return
    */
	List<User> findList(UserDTO userDTO);

	/**
	* 获取分页数据，有查询条件，有排序
	*
	* @param userDTO
	* @return
	*/
	ResultDTO findPage(UserDTO userDTO);

	/**
	* 添加数据
	*
	* @param user
	* @return
	*/
	User create(User user);

	/**
	* 批量添加数据
	*
	* @param userList
	* @return
	*/
	List<User> batchCreate(List<User> userList);

	/**
	* 更新数据，更新数据前需要校验id是否为空
	*
	* @param user
	* @return
	*/
	ResultDTO update(User user);

	/**
	* 删除数据，根据id做删除
	*
	* @param id
	*/
	void deleteById(Long id);

	/**
	 * 根据用户登录码查询用户
	 *
	 * @param userCode
	 */
	 List<User> findByUserCode(String userCode);
}
